package com.sanjiayi.service;

import com.sanjiayi.dto.MomentPublishDTO;
import com.sanjiayi.dto.MomentDetailDTO;
import com.sanjiayi.pojo.Moment;
import com.sanjiayi.pojo.MomentStats;
import com.sanjiayi.result.PageResult;
import com.sanjiayi.result.QueryPageBean;

import java.util.List;

public interface MomentService {
    /**
     * 发布动态
     */
    void publishMoment(Integer userId, MomentPublishDTO momentPublishDTO);

    /**
     * 获取用户动态列表（分页）
     */
    PageResult getUserMoments(Integer userId, QueryPageBean queryPageBean);
    
    /**
     * 获取用户最近的动态
     */
    List<Moment> getRecentMoments(Integer userId, Integer limit);
    
    /**
     * 根据话题获取动态
     */
    PageResult getMomentsByTopic(String topic, QueryPageBean queryPageBean);
    
    /**
     * 检查用户是否存在
     */
    boolean checkUserExists(Integer userId);
    
    /**
     * 获取用户动态统计信息
     */
    MomentStats getUserMomentStats(Integer userId);

    /**
     * 获取推荐动态列表（分页）
     */
    PageResult getRecommendMoments(QueryPageBean queryPageBean, String type);

    /**
     * 根据ID获取文章详情
     * @param id 文章ID
     * @return 文章详情
     */
    Moment getMomentById(String id);

    /**
     * 获取文章详情，包含评论和点赞信息
     * @param momentId 文章ID
     * @param userId 当前用户ID
     * @return 文章详情
     */
    MomentDetailDTO getMomentDetail(Integer momentId, Integer userId);

    /**
     * 获取关注用户的动态列表（分页）
     * @param userId 当前用户ID
     * @param queryPageBean 分页参数
     * @return 分页结果
     */
    PageResult getFollowingMoments(Integer userId, QueryPageBean queryPageBean);
} 